package acme.bloodtime.dao;

import java.util.ArrayList;
import java.sql.Date;
import java.util.List;

import modelo.ICiudadDO;
import modelo.IFamiliaDO;
import modelo.IPropiedadVampiroDO;
import modelo.IVampiroArticuloDO;
import modelo.IVampiroDO;
import modelo.IVisitaDO;

import dao.api.DataObject;
import dao.api.Reference;


/**
 * 
 * @author Cesar A. Fuguet T.
 *
 */
public class VampiroDO implements DataObject, IVampiroDO {

	// -----------------------------
	// Columnas de la tabla Vampiro
	// -----------------------------
	
	public static final String NOMBRE/*				*/ = "nombre";
	public static final String APELLIDO/*			*/ = "apellido";
	public static final String CORREO/*				*/ = "correo";
	public static final String FECHA_NAC/*			*/ = "fechaNac";
	public static final String CONTRASENIA/*		*/ = "contrasenia";
	public static final String ALIAS/*				*/ = "alias";
	public static final String IMAGEN/*				*/ = "imagen";
	public static final String FUERZA/*				*/ = "fuerza";
	public static final String DEFENSA/*			*/ = "defensa";
	public static final String SIGILOSIDAD/*		*/ = "sigilosidad";
	public static final String VELOCIDAD/*			*/ = "velocidad";
	public static final String HAB_ARMAS/*			*/ = "habArmas";
	public static final String HAB_NEGOCIOS/*		*/ = "habNegocios";
	public static final String PTOS_ENTRENAMIENTO/*	*/ = "ptosEntrenamiento";
	public static final String PTOS_EXPERIENCIA/*	*/ = "ptosExperiencia";
	public static final String SALUD/*				*/ = "salud";
	public static final String SANGRE/*				*/ = "sangre";
	public static final String DINERO/*				*/ = "dinero";
	public static final String NUM_ESCLAVOS/*		*/ = "numEsclavos";
	public static final String ACTIVO/*				*/ = "activo";
	public static final String FAMILIA_ID/*			*/ = "familiaId";
	public static final String CIUDAD_ID/*			*/ = "ciudadId";
	
	// -------------------------------
	// Identificador auto-incremental
	// -------------------------------
	
	private int id;
	
	// -----------------
	// Datos Personales
	// -----------------
	 
	private String nombre;
	private String apellido;
	private String correo;
	private Date fechaNac;
	private String contrasenia;
	private boolean activo;
	
	// --------------------
	// Datos del personaje
	// --------------------
	
	private String alias;
	private byte [] imagen;
	private int fuerza;
	private int defensa;
	private int sigilosidad;
	private int velocidad;
	private int habArmas;
	private int habNegocios;
	private int ptosEntrenamiento;
	private int ptosExperiencia;
	private int salud;
	private int sangre;
	private float dinero;
	private int numEsclavos;
	
	// ------------
	// Referencias
	// ------------
	
	private Reference<IFamiliaDO> familiaId = //
		new Reference<IFamiliaDO>();
	
	private Reference<ICiudadDO> ciudadId = //
		new Reference<ICiudadDO>();
	
	private List<IVisitaDO> visitaList = //
		new ArrayList<IVisitaDO>();
	
	private List<IVampiroArticuloDO> vampiroArticuloList = //
		new ArrayList<IVampiroArticuloDO>();
	
	private List<IPropiedadVampiroDO> propiedadVampiroList = //
		new ArrayList<IPropiedadVampiroDO>();
	
	// ------------------------------------------------------------------------
	
	public VampiroDO() {
		// Empty
	}
	
	@Override
	public int getId() {
		return id;
	}

	@Override
	public void setId(int id) {
		this.id = id;
	}
	
	public String getNombre() {
		return nombre;
	}
	
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	
	public String getApellido() {
		return apellido;
	}
	
	public void setApellido(String apellido) {
		this.apellido = apellido;
	}
	
	public String getCorreo() {
		return correo;
	}
	
	public void setCorreo(String correo) {
		this.correo = correo;
	}
	
	public Date getFechaNac() {
		return fechaNac;
	}
	
	public void setFechaNac(Date fechaNac) {
		this.fechaNac = fechaNac;
	}
	
	public String getContrasenia() {
		return contrasenia;
	}
	
	public void setContrasenia(String contrasenia) {
		this.contrasenia = contrasenia;
	}
	
	public String getAlias() {
		return alias;
	}
	
	public void setAlias(String alias) {
		this.alias = alias;
	}
	public void setImagen(byte [] imagen) {
		this.imagen = imagen;
	}

	public byte [] getImagen() {
		return imagen;
	}

	public int getFuerza() {
		return fuerza;
	}
	
	public void setFuerza(int fuerza) {
		this.fuerza = fuerza;
	}
	
	public int getDefensa() {
		return defensa;
	}
	
	public void setDefensa(int defensa) {
		this.defensa = defensa;
	}
	
	public int getSigilosidad() {
		return sigilosidad;
	}
	
	public void setSigilosidad(int sigilosidad) {
		this.sigilosidad = sigilosidad;
	}
	
	public int getVelocidad() {
		return velocidad;
	}
	
	public void setVelocidad(int velocidad) {
		this.velocidad = velocidad;
	}
	
	public int getHabArmas() {
		return habArmas;
	}
	
	public void setHabArmas(int habArmas) {
		this.habArmas = habArmas;
	}
	
	public int getHabNegocios() {
		return habNegocios;
	}
	
	public void setHabNegocios(int habNegocios) {
		this.habNegocios = habNegocios;
	}
	
	public int getPtosEntrenamiento() {
		return ptosEntrenamiento;
	}
	
	public void setPtosEntrenamiento(int ptosEntrenamiento) {
		this.ptosEntrenamiento = ptosEntrenamiento;
	}
	
	public int getPtosExperiencia() {
		return ptosExperiencia;
	}
	
	public void setPtosExperiencia(int ptosExperiencia) {
		this.ptosExperiencia = ptosExperiencia;
	}
	
	public int getSalud() {
		return salud;
	}
	
	public void setSalud(int salud) {
		this.salud = salud;
	}
	
	public int getSangre() {
		return sangre;
	}
	
	public void setSangre(int sangre) {
		this.sangre = sangre;
	}
	
	public float getDinero() {
		return dinero;
	}
	
	public void setDinero(float dinero) {
		this.dinero = dinero;
	}
	
	public int getNumEsclavos() {
		return numEsclavos;
	}
	
	public void setNumEsclavos(int numEsclavos) {
		this.numEsclavos = numEsclavos;
	}
	
	public boolean isActivo() {
		return activo;
	}
	
	public void setActivo(boolean activo) {
		this.activo = activo;
	}

	public Reference<IFamiliaDO> getFamiliaId() {
		return familiaId;
	}

	public void setFamiliaId(Reference<IFamiliaDO> familiaId) {
		this.familiaId = familiaId;
	}

	public Reference<ICiudadDO> getCiudadId() {
		return ciudadId;
	}

	public void setCiudadId(Reference<ICiudadDO> ciudadId) {
		this.ciudadId = ciudadId;
	}

	public List<IVisitaDO> getVisitaList() {
		return visitaList;
	}

	public void setVisitaList(List<IVisitaDO> visitaList) {
		this.visitaList = visitaList;
	}

	public List<IVampiroArticuloDO> getVampiroArticuloList() {
		return vampiroArticuloList;
	}

	public void setVampiroArticuloList(List<IVampiroArticuloDO> vampiroArticuloList) {
		this.vampiroArticuloList = vampiroArticuloList;
	}

	public List<IPropiedadVampiroDO> getPropiedadVampiroList() {
		return propiedadVampiroList;
	}

	public void setPropiedadVampiroList(
			List<IPropiedadVampiroDO> propiedadVampiroList) {
		this.propiedadVampiroList = propiedadVampiroList;
	}
}
